跳到主要内容

C++ 互斥锁

阐述

针对一个可能被多个C++ 线程使用的资源,定义一个变量 m,进入临界区之前必须对 m 上锁,退出时解锁,而它上锁之后就不能被别的线程再次上锁,从而保证不会出现访问冲突。

实例

在 C++ 中,用 mutex 对象:


std::mutex m;
void proc1() {
m.lock();
...
m.unlock();
}

也可以通过在临界区开始时定义一个 lock_guard 对象,并保证它的作用域结束时临界区也结束,就可以自动加锁解锁。

相关内容

性质

参考文献